How to add a modeless dialog with edit boxes to your MFC program.
Rucker, April 29, 1998.  Comments for MFC Alife 5.

First READ CAREFULLY my Section 9.6, flipping
back to look at the code mentioned in there.
=======

Add a Params dialog, give it a IDC_RUNSPEED edit box, associate this box with an
real m_runspeed with a range -10.0 to 10.0.  REcall that we usually use
0.2, so this is a generous range.  Do be generous in  our ranges as there may
be behavior you haven't thought of at odd values.  

Remember that a modeless dialog won't show unless it has Visible checked in
the Resource Workshop properties|More Styles sheet. 

Don't let the Params dialog have an OK or a CANCEL button.  You will only close it
by using ESC or pressing the little x.  This is because when you have an edit box
in a modeless dialog you use the ENTER key to signal when done editing a box.
And the default processor of ENTER is OnOK, same as for an IDOK button.

Have the PARAMS.CPP OnOk message handler call only UpdateData();  This will
call DoDataExchange, see below.

Add message handler for OnCancel, OnClose to PARAMS.CPP, put declarations
in PARAMS.H, otherwise you can only open the dialog once.  These messages must
call DestroyWindow.

Do a Search In Files on _pDlg_score, and put a _pDlg_params field into the MAINFRM.*
files just the same.

Add a public CAlifeView *_pView_focus to CParams, simliar to the field in
CScore, have the constructor initialize it to NULL.  You should
declare class CAlifeView; in the CAPARAMS.H and include the AlifeDoc.h and
the AlifeView.h in the PARAMS.CPP>

Add a runspeed accessor and mutator to WORLD.H.  Add a runspeed accessor and
mutator to CALIFEVIEW.H.

Edit the OnSetFocus message handler to CALifeView to set the _pDlg_score->pView_focus
and to display the runspeed.  (See the code).

Edit the PARAMS.CPP file to add this to DoDataExchange
 	if (_pView_focus && pDX->m_bSaveAndValidate)
		_pView_focus->setRunspeed(m_runspeed);

Add a Controls|Params... selection and have an OnControlsParams message handler.
This only needs to call CDialog::Create, as the m_runspeed was set in OnSetFocus.
(See the code).